<?php
/**
 * 栏目管理
 */
namespace app\admin\controller;

use think\Controller;
use think\Request;
use think\facade\Env;
class Cate extends Common
{
    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {
        $cate=model('Cate')->cateSort();
        foreach ($cate as $k => $v) {
           $model=db('models')->where('id',$v['model_id'])->value('model_name');
           $cate[$k]['model']=$model;
        }

        $this->assign('cate',$cate);
        return view();
    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {   $id=input('id');
        $cate=model('Cate')->cateSort();
        $model=db('models')->field('id,model_name')->order('id desc')->select();
        $this->assign([
            'cate'=>$cate,
            'id'=>$id,
            'model'=>$model,
        ]);
       return view();
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request  $request
     * @return \think\Response
     */
    public function save()
    {
        if (request()->isPost()) {
            $data=input('post.');
            $validate = validate('Cate');
            if(!$validate->check($data)){
                 $this->error($validate->getError());
            }
            $res=db('cate')->insert($data);
            if (!$res) {
               $this->error('栏目添加失败');
            }
            $this->success('栏目添加成功','index');
        }
    }

    /**
     * 显示指定的资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function read($id)
    {
        //
    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function edit($id)
    {
        $cateEdit=model('Cate')->find($id);
        $cate=model('Cate')->cateSort();
        $model=model('Models')->field('id,model_name')->order('id desc')->select();
        $this->assign([
            'cate'=>$cate,
            'cateid' =>$id,
            'cateEdit'=>$cateEdit,
            'model'  =>$model,
        ]);
        return view();
    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request  $request
     * @param  int  $id
     * @return \think\Response
     */
    public function update(Request $request)
    {
        if (request()->isPost()) {
            $data=$request->param();
            $validate = validate('Cate');
            if(!$validate->check($data)){
                 $this->error($validate->scene('edit')->getError());
            }
            $res=db('cate')->where('id',$data['id'])->update($data);
            if (!$res) {
               $this->error('栏目编辑失败');
            }
            $this->success('栏目编辑成功','index');
        }
    }

    /**
     * 删除指定资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function delete($id)
    {
        $res=model('Cate')->getChildIds($id);
        $res[]=(int)$id;
        $del=db('cate')->delete($res);
        if ($del) {
           return json(['code'=>1,'msg'=>'栏目删除成功']);
        }
        return json(['code'=>2,'msg'=>'栏目删除失败']);
    }
    /**
     * 修改栏目状态
     *
     * @param [栏目id] $id 
     * @return void
     */
    public function status($id){
        $cate=db('cate')->field('isshow')->find($id);
        if ($cate['isshow']==1) {
          $res=db('cate')->where('id',$id)->setField('isshow', 2);
        }else{
         $res= db('cate')->where('id',$id)->setField('isshow', 1);  
        }
        if (!$res) {
           return json(['code'=>2,'msg'=>'栏目状态修改失败']);
        }
        return json(['code'=>1,'msg'=>'栏目状态修改成功']);
    }
    /**
     * 栏目排序
     *
     * @return void
     */
    public function sort(){
        if (request()->isPost()) {
            $data=input('post.');
            foreach ($data['sort'] as $k => $v) {
            $res=db('cate')->where('id',$k)->update(['sort'=>$v]);
            }
            $this->success('数据处理成功','index');
           
        }
    }
     
    
}
